package cn.sumpu.app.coolsk.biz.impl.fax;

import java.io.File;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.sumpu.app.coolsk.biz.FaxBiz;
import cn.sumpu.app.coolsk.exception.AppBusinessException;
import cn.sumpu.app.coolsk.util.ExportWord;

public class FaxBizImpl implements FaxBiz {

	private final static Logger logger = LoggerFactory
			.getLogger(FaxBizImpl.class);
	
	private String tmpDir;
	
	public void setTmpDir(String tmpDir) {
		this.tmpDir = tmpDir;
	}

	private String account;

	public void setAccount(String account) {
		this.account = account;
	}

	private String password;

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public synchronized String send(String content, String faxPhone, String receiver,
			String subject) throws AppBusinessException {
		allcom.SendFax fax = new allcom.SendFax(account, password);
		fax.SetGroup(false); // 设置为单发传真模式，默认为false
		fax.SetDebug(true); // 设置debug模式，此模式下，传真会抄送一份到我们的邮箱，以便于分析。在接口调试完毕后，请关闭调试模式。
		fax.EnableTimer(true);
		java.util.Date start_time = new java.util.Date(
				System.currentTimeMillis() + 1000);
		fax.SetStartTime(start_time);
		//
		String cFile = tmpDir+"/fax.doc";
		File file = new File(cFile);
		if (file.isFile() && file.exists()) {
			file.delete();
		}
		ExportWord.writeWordFile(cFile, content);// 先生成doc文件
		//
		fax.AddAttachment(cFile); // 添加要发送的传真文件
		//fax.SetContent(content);
		fax.SetFax(faxPhone); // 要接收的传真号码
		//fax.SetFrom("coolgy0399@gfax.cn");
		//fax.SetReceiver(receiver);// 传真接收人
		//fax.SetSubject(subject);// 传真主题
		fax.SetPhoto("normal"); // 传真的精度。可取值为 low 标准精度 ,normal 高精度 ,high 图片精度
		fax.send();
		String messageid = fax.GetMessageID(); // 取出系统生成的message-id
		if (logger.isDebugEnabled()) {
			logger.debug("Fax success,messageID: " + messageid);
		}
		return messageid;
	}

}
